//
//  YiJiPayPlugin.h
//  YiJiPayPlugin
//
//  Created by xin.c.wang on 13-8-15.
//  Copyright (c) 2013年 Xin.C.Wang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/*******************************************************************************
 *
 * 插件启动参数定义
 *
 ******************************************************************************/

// 插件运行模式，"00":为产品环境(缺省默认）, "01":为测试环境
extern NSString* const kYjParamMode;
extern NSString* const kYjModeProduct; // @"00"
extern NSString* const kYjModeTesting; // @"01"

// 合作商户账户ID，由商户向易极付申请，必需参数
extern NSString* const kYjParamPartnerID;

// 用户ID，若支付时传递此参数，则优先采用信任登录模式，若信任登录失败，自动切换为普通模式。
// 如果商户的kYjParamPartnerID和kYjParamUserID参数验证通过，会使用kYjParamUserID参数所传递的用户
// 进行支付操作，否则进入普通支付流程
extern NSString* const kYjParamUserID;

// 访问授权ID, 由商户向易极付申请, 必需参数
extern NSString* const kYjParamAccessID;

// 订单号，由易极付后台生成，支付必需参数
extern NSString* const kYjParamOrderID;

// 返回状态码 "200":成功，"300":取消，"400":失败，"401":数据异常（校验失败、参数错误等）
extern NSString* const kYjResultStatus;

// 返回信息或提示，可用于显示
extern NSString* const kYjResultMessage;

/*******************************************************************************
 *
 * 支付插件回调
 *
 ******************************************************************************/
@protocol YiJiPayPluginDelegate <NSObject>

@required
/*
 易极付插件【支付】结果回调
 \result 结果信息
 */
-(void)YiJiPayPluginResult:(NSDictionary*)result;

@end

/*******************************************************************************
 *
 * 支付插件入口
 *
 ******************************************************************************/
@interface YiJiPayPlugin : NSObject

/*
 调用易极付插件 - 【支付】
 \params 调用参数
 \viewController 切入插件的UIViewController，插件返回时会回到此界面
 \delegate 交易成功与否会调用此代理的接口
 
 return:
 \YES 调用插件成功
 \NO  调用插件失败
 */
+ (BOOL)startPay:(NSDictionary *)params
  viewController:(UIViewController *)viewController
        delegate:(id<YiJiPayPluginDelegate>)delegate;

@end
